package data;

/**
 * Yo, so we don't use this but we are keeping it here just for the code
 * reference
 * 
 * @author Pooja
 */
public class DBInterface implements IModel {

	// private Connection conn;
	//
	// public DBInterface() throws DBInterfaceError {
	// try {
	// Class.forName("com.mysql.jdbc.Driver").newInstance();
	// } catch (InstantiationException e) {
	// e.printStackTrace();
	// } catch (IllegalAccessException e) {
	// e.printStackTrace();
	// } catch (ClassNotFoundException e) {
	// e.printStackTrace();
	// }
	// conn = getConnection();
	// }
	//
	// private Connection getConnection() throws DBInterfaceError {
	//
	//
	// AsyncTask<Void, Void, Connection> getConn = new AsyncTask<Void, Void,
	// Connection> (){
	//
	// protected Connection doInBackground(Void... arg0) {
	// Connection conn = null;
	// try {
	// conn =
	// DriverManager.getConnection("jdbc:mysql://instance39727.db.xeround.com:7503/wheresmystuff?user=admin&password=panda");
	// } catch (SQLException e) {
	// // TODO Auto-generated catch block
	// System.err.println("panndaaaa");
	// e.printStackTrace();
	// }
	//
	// return conn;
	// }
	//
	//
	// };
	//
	// getConn.execute();
	//
	// Connection conn = null;
	// try {
	// conn = getConn.get();
	// } catch (InterruptedException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// } catch (ExecutionException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	//
	//
	// if (conn == null){
	// System.out.println("Connected to database");
	// } else {
	// throw new DBInterfaceError(DBInterfaceError.Error.CONNECTION_ERROR);
	// }
	//
	// System.out.println("Connected to database");
	// return conn;
	// }
	//
	//
	// private boolean accountExists(final String accountName) throws
	// DBInterfaceError {
	// boolean exists = false;
	//
	// AsyncTask<Void, Void, Boolean> getConn = new AsyncTask<Void, Void,
	// Boolean> (){
	//
	// @Override
	// protected Boolean doInBackground(Void... params) {
	// boolean exists = false;
	//
	// PreparedStatement accountExistsQuery;
	// try {
	// accountExistsQuery =
	// conn.prepareStatement("SELECT * FROM account WHERE accountName = ?");
	// accountExistsQuery.setString(1, accountName);
	// ResultSet accounts = accountExistsQuery.executeQuery();
	// exists = accounts.next();
	// } catch (SQLException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	// return exists;
	// }
	// };
	//
	// getConn.execute();
	//
	//
	// try {
	// exists = getConn.get();
	// } catch (ExecutionException e) {
	// throw new DBInterfaceError(DBInterfaceError.Error.CONNECTION_ERROR);
	// } catch (InterruptedException e) {
	// throw new DBInterfaceError(DBInterfaceError.Error.CONNECTION_ERROR);
	// // TODO Auto-generated catch block
	// }
	//
	// return exists;
	// }
	//
	//
	// public void addAccount(final Account acct) throws DBInterfaceError{
	//
	//
	// if (acct.getAccountName() == null || acct.getAccountName() == ""){
	// throw new
	// DBInterfaceError(DBInterfaceError.Error.ACCOUNT_CREATION_INVALID_NAME);
	// }
	//
	// if (acct.getPassword() == null || acct.getPassword() == ""){
	// throw new
	// DBInterfaceError(DBInterfaceError.Error.ACCOUNT_CREATION_INVALID_PASSWORD);
	// }
	//
	//
	// if (accountExists(acct.getAccountName())){
	// throw new
	// DBInterfaceError(DBInterfaceError.Error.ACCOUNT_CREATION_ACCOUNT_ALREADY_EXISTS);
	// }
	//
	// AsyncTask<Void, Void, Boolean> addAccount = new AsyncTask<Void, Void,
	// Boolean> (){
	//
	// @Override
	// protected Boolean doInBackground(Void... params) {
	// boolean success = false;
	//
	// try {
	// PreparedStatement addAccountQuery;
	// addAccountQuery =
	// conn.prepareStatement("INSERT INTO account VALUES (?, ?, ?, ?, ?, ?, ?)");
	// addAccountQuery.setString(1, acct.getAccountName());
	// addAccountQuery.setString(2, acct.getPassword());
	// addAccountQuery.setString(3, acct.getRealName());
	// addAccountQuery.setString(4, acct.getEmail());
	// addAccountQuery.setString(5, acct.getPhoneNumber());
	// addAccountQuery.setInt(6, 0);
	// addAccountQuery.setBoolean(7, false);
	//
	// if ( ! addAccountQuery.execute() ){
	// if (addAccountQuery.getUpdateCount() == 0){
	// success = false;
	// }
	// }
	// }
	// catch (SQLException e){
	// success = false;
	// }
	//
	//
	// return null;
	// }
	// };
	//
	//
	// addAccount.execute();
	//
	// boolean success = false;
	// try {
	// success = addAccount.get();
	// } catch (Exception e) {
	// throw new DBInterfaceError(DBInterfaceError.Error.CONNECTION_ERROR);
	// }
	//
	// if (! success) {
	// throw new DBInterfaceError(DBInterfaceError.Error.CONNECTION_ERROR);
	// }
	//
	//
	//
	// }
	//
	// public boolean accountLocked(final String accountName){
	//
	//
	//
	// AsyncTask<Void, Void, Boolean> accountLocked = new AsyncTask<Void, Void,
	// Boolean> (){
	//
	// @Override
	// protected Boolean doInBackground(Void... params) {
	// boolean isLocked = false;
	// try {
	// PreparedStatement accountLocked =
	// conn.prepareStatement("SELECT loginTimes FROM account WHERE locked = true AND accountName = ?");
	// accountLocked.setString(1, accountName);
	// ResultSet locked = accountLocked.executeQuery();
	// isLocked = locked.next();
	// } catch (SQLException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	// }
	//
	//
	// }
	//
	//
	// boolean isLocked = false;
	// try {
	// PreparedStatement accountLocked =
	// conn.prepareStatement("SELECT loginTimes FROM account WHERE locked = true AND accountName = ?");
	// accountLocked.setString(1, accountName);
	// ResultSet locked = accountLocked.executeQuery();
	// isLocked = locked.next();
	// } catch (SQLException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	//
	// return isLocked;
	// }
	//
	// public boolean checkAccountCredentials(String accountName, String
	// password) throws DBInterfaceError{
	// boolean correctCreds = false;
	//
	// if (accountExists(accountName)){
	// PreparedStatement correctCredentialsQuery;
	// ResultSet set;
	//
	// try {
	// correctCredentialsQuery =
	// conn.prepareStatement("SELECT loginTimes FROM account WHERE accountName = ? AND password = ?");
	// correctCredentialsQuery.setString(1, accountName);
	// correctCredentialsQuery.setString(2, password);
	// set = correctCredentialsQuery.executeQuery();
	// int newLoginTimes;
	// if (set.next()){ //password and user name match
	// newLoginTimes = 0;
	// correctCreds = true;
	//
	//
	// } else { //username matches, password does not
	// correctCredentialsQuery =
	// conn.prepareStatement("SELECT loginTimes FROM account WHERE accountName = ?");
	// correctCredentialsQuery.setString(1, accountName);
	// set = correctCredentialsQuery.executeQuery();
	// newLoginTimes = set.getInt(0) + 1;
	// }
	//
	// correctCredentialsQuery =
	// conn.prepareStatement("UPDATE account SET loginTimes = ? WHERE accountName = ?");
	// correctCredentialsQuery.setInt(1, newLoginTimes);
	// correctCredentialsQuery.setString(2, accountName);
	//
	// correctCredentialsQuery =
	// conn.prepareStatement("UPDATE account SET locked = ? WHERE loginTimes >= 3");
	// correctCredentialsQuery.setBoolean(1, true);
	// correctCredentialsQuery.execute();
	//
	//
	// } catch (SQLException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	//
	//
	//
	// }
	//
	// return correctCreds;
	// }

	public static void main(String[] args) {

		// Account account = new Account();
		// account.setAccountName("ThisIsATest");
		// account.setPassword("pandasRcool");
		// account.setEmail("thisisatest@gmail.com");
		// account.setPhoneNumber("5558008000");
		// account.setRealName("Obabo Smith");
		//
		//
		// try {
		// new AddAccount(null, account).getResult();
		// } catch (DBInterfaceError e) {
		// // TODO Auto-generated catch block
		// e.printStackTrace();
		// System.err.println(e.err);
		// }
		//

	}

	@Override
	public void addAccount(Account acct) throws Exception {
		// TODO Auto-generated method stub

	}
}
